package GestorUsuarios;

/**
 * @file Bitacora.java
 * @brief Implementa la clase Bitacora
 * 
 * Implementa la clase Usuario usada para manejar la bitacora.
 * 
 * @author Houyam Charkaoui
 * @version 01.00 
 * 
 */

import java.io.IOException;
//import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.SQLException;
import java.util.Date;

//import GestorClinico.Direccion;
//import GestorClinico.DireccionDAO;
//import GestorUsuarios.Usuario.Estado;
//import GestorUsuarios.Usuario.Genero;
//import GestorUsuarios.Usuario.Tipo;
import GestorUsuarios.BitacoraDAO;
/**
 * @class Bitacora
 * 
 * @brief Clase Bitacora
 * 
 */
public class Bitacora{
	
	
	
	private int _idBitacora;
	private Date _fecha;
	private OperacionBitacora _operacion;
	
	private int _idUsuario;
	private int _idGestor;
	
	/**
	 * @brief Constructor de la clase: Llama al constructor de Bitacora.
	 * @param fecha Fecha	
	 * @param operacion Operacion de la bitacora:ALTA , BAJA o MODIFICACION
	 * @param id1 Id del Usuario 
	 * @param id2 Id del Gestor	 
	 * @throws NoSuchAlgorithmException 
	 */
	public Bitacora(Date fecha,OperacionBitacora operacion,Integer id1,Integer id2) throws NoSuchAlgorithmException {
		_fecha = fecha;
		_operacion = operacion;
		_idUsuario = id1;
		_idGestor = id2; 
	}
	
	/**
	 * @brief Constructor de la clase: Llama al constructor de Bitacora con idBiacora
	 * @param idBitacora Id de la bitacora
	 * @param fecha Fecha de Bitacora	
	 * @param operacion Operacion de la bitacora:ALTA , BAJA o MODIFICACION
	 * @param id1 Id del Usuario 
	 * @param id2 Id del Gestor	 
	 * @throws NoSuchAlgorithmException 
	 */
	public Bitacora(Integer idBitacora,Date fecha,OperacionBitacora operacion,Integer id1,Integer id2) throws NoSuchAlgorithmException {
		_idBitacora = idBitacora;
		_fecha = fecha;
		_operacion = operacion;
		_idUsuario = id1;
		_idGestor = id2; 
	}
	
	/**
	 * @brief Aniade la bitacora a la base de datos
	 * @param bitacora La bitacora a aniadir
	 * @throws ClassNotFoundException, IOException, SQLException, IDException
	 * @throws NoSuchAlgorithmException 
	 */
	public static void add(Bitacora bitacora) throws SQLException, IOException, ClassNotFoundException, IDException, NoSuchAlgorithmException {
		BitacoraDAO.add(bitacora);
	}
	/**
	 * @throws ClassNotFoundException, IOException, SQLException 
	 * @throws NoSuchAlgorithmException 
	 * @brief Devuelve un vector de bitacoras
	 */
	/*public static Bitacora[] get(Usuario usuario,Gestor gestor,Date fech) throws SQLException, IOException, ClassNotFoundException, NoSuchAlgorithmException {
		Bitacora [] bitacoras=null;
		Bitacora [] b_aux1=null;
		Bitacora [] b_aux2=null;
		int idu,idg;
		idu = usuario.getIdUsuario();
		idg = gestor.getIdUsuario();
		b_aux1 = BitacoraDAO.getEntrada(idu, fech);
		b_aux2 = BitacoraDAO.getGestion(idg, fech);
		bitacoras = b_aux1 + b_aux2;
		return bitacoras;
	}*/
	
		/**
		 * @brief Obtiene el id de la bitacora
		 */
		public int getIdBitacora() {
			return _idBitacora;
		}
		/**
		 * @brief Establece el id de la bitacora
		 * @param id Nuevo id de la bitacora
		 */
		public void setIdBitacora(int id) {
			_idBitacora = id;
		}
		/**
		 * @brief Obtiene la fecha 
		 */
		public Date getFecha() {
			return _fecha;
		}
		
		/**
		 * @brief Establece la fecha de la bitacora
		 * @param fecha Nueva fecha 
		 */
		public void setFecha(Date fecha) {
			_fecha = fecha;
		}
	
		/**
		 * @brief Obtiene la operacion de la bitacora
		 */
		public OperacionBitacora getOperacion() {
			return _operacion;
		}
		
		/**
		 * @brief Establece la operacion de la bitacora 
		 * @param operacion Nueva operacion de la bitacora
		 */
		public void setOperacion(OperacionBitacora operacion) {
			_operacion = operacion;
		}
		
		/**
		 * @brief Obtiene el id del Usuario
		 */
		public int getIdUsuario() {
			return _idUsuario;
		}
		/**
		 * @brief Establece el id de usuario de la bitacora
		 * @param id Nuevo id de usuario de la bitacora
		 */
		public void setIdUsuario(int id1) {
			_idUsuario = id1;
		}
		/**
		 * @brief Obtiene el id del Gestor
		 */
		public int getIdGestor() {
			return _idGestor;
		}
		/**
		 * @brief Establece el id del gestor de la bitacora
		 * @param id Nuevo id del gestor de la bitacora
		 */
		public void setIdGestor(int id2) {
			_idGestor = id2;
		}
}
